package com.erp.employee.dao.idl;

import java.util.BitSet;
import java.util.Map;
import java.util.Set;

import com.paipai.lang.uint16_t;
import com.paipai.lang.uint32_t;
import com.paipai.lang.uint8_t;
import com.paipai.util.annotation.Field;
import com.paipai.util.annotation.Member;

public class EmployeeDdos {
	@Member(cPlusNamespace=  "erp::employee::ddo",desc = "员工do", isNeedUFlag = true)
	public
    class EmployeeDdo 
    {
		@Field(desc =   " 版本号   ", defaultValue=  "0",optional=true)
        uint32_t  version;

        @Field(desc =   " 员工ID ",optional=true)
        uint32_t employeeId;
        
        @Field(desc =   " 员工姓名 ",optional=true)
        String employeeName;
        
        @Field(desc =   " 员工英文名 ",optional=true)
        String employeeEnglishName;
        
        @Field(desc =   " 员工状态",optional=true)
        uint16_t employeeStatus;
        
        @Field(desc =   " 员工属性  ",bitset=32,optional=true)
        BitSet   employeeProperty;
        
        @Field(desc =   " 员工属性，设置  ",bitset=32,optional=true)
        BitSet   employeePropertyInclude;
        
        @Field(desc =   " 员工属性，取消 ",bitset=32,optional=true)
        BitSet   employeePropertyExclude;
        
        @Field(desc =   " 员工类型",optional=true)
        uint16_t employeeType;
        
        @Field(desc =   " 员工性别",optional=true)
        uint8_t employeeSex;
        
        @Field(desc =   " 添加时间",optional=true)
        uint32_t addTime;//1970-1-1 0:0:0后，秒数
        
        @Field(desc =   " 修改时间",optional=true)
        uint32_t lastUpdatetime;
    }
	
	@Member(cPlusNamespace=  "erp::employee::ddo",desc = "过滤do", isNeedUFlag = true)
	public
    class EmployeeFilterDdo 
    {
		@Field(desc =   " 版本号   ", defaultValue=  "0",optional=true)
        uint32_t  version;

        @Field(desc =   " 页码，从0开始 ",optional=true)
        uint32_t page;
        
        @Field(desc =   " 页面大小 ",optional=true)
        uint32_t pageSize;
        
        @Field(desc =   " 排序方式 ",optional=true)
        uint16_t orderType;
        
        @Field(desc = "Id列表，若填写则其他过滤条件无效",optional=true)
		Set<uint32_t> idList;
		
		@Field(desc =   " 员工姓名 ",optional=true)
        String employeeName;
        
        @Field(desc =   " 员工英文名 ",optional=true)
        String employeeEnglishName;
        
        @Field(desc =   " 员工状态",optional=true)
        Set<uint16_t> employeeStatus;
        
        @Field(desc =   " 员工属性 ",bitset=32,optional=true)
        BitSet   employeePropertyInclude;
        
        @Field(desc =   " 员工属性，且关系 ",bitset=32,optional=true)
        BitSet   employeePropertyExclude;
        
        @Field(desc =   " 员工属性选项：0：employeePropertyInclude是且的关系；1，employeePropertyInclude是或的关系",optional=true)
        uint16_t employeePropertyOption;
        
        @Field(desc =   " 添加时间，上限",optional=true)
        uint32_t addTimeBegin;
        
        @Field(desc =   " 添加时间，下限",optional=true)
        uint32_t addTimeEnd;
        
        @Field(desc =   " 扩展",optional=true)
        Map<String,String> extern;
    }
}
